home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / d86.arc / AREAD_ME.DOC < prev    next >
Text File  |  1986-11-16  |  14KB  |  269 lines

  1. D86 debugger package    V2.17    November 16, 1986
  2. The entire package is Copyright (C)1986 Eric Isaacson. All rights reserved.
  3.  
  4.  
  5. Introduction
  6.  
  7. This is a preliminary test copy of D86.  D86 is the finest debugger available,
  8. under any terms at any price, for the IBM-PC and compatibles.  I call it a
  9. preliminary copy because it does not yet meet my standards for professional-
  10. quality software.  (If you examine this package, though, you'll deduce that
  11. my standards are high.)  I am releasing this version now because:
  12.  
  13.     a. I promised my registered A86 users that I would; and
  14.  
  15.     b. D86 is already considerably better than anything else on the market.
  16.        In fact, I consider it to be a milestone in debugger technology.  It
  17.        would be cruel of me to withhold it any longer.
  18.  
  19. Those of you who have already registered for A86 are, under the terms of my
  20. inaugural A86 offer, also registered for this D86 package.  It is your reward
  21. for your quick support of a new software package.  I thank you again, and I
  22. hope to hear your comments and suggestions.
  23.  
  24. In contrast to software firms who attempt to restrict the distribution of
  25. their software through protection schemes, I encourage free distribution,
  26. and trust that those who use my products will pay for them.  Please keep in
  27. mind the fundamental good spirit of free-distribution software as you endure
  28. the following barrage of legalities.  Then evaluate the outstanding value that
  29. the D86 package offers you.  I assure you that you will not be disappointed.
  30.  
  31.  
  32. Legal Terms and Conditions
  33.  
  34. This package is provided to you under the following conditions:
  35.  
  36. 1. You may copy this entire package, and give it to anyone who accepts these
  37.    terms.  The copies you distribute must be complete and unmodified.  You
  38.    do not have to be registered to distribute this package.
  39.  
  40. 2. You may execute the programs in this package, in order to evaluate them.
  41.    If you decide that any of this package is of use to you, you must become a
  42.    registered user by sending $40 US to:
  43.  
  44.       Eric Isaacson
  45.       416 E. University Street
  46.       Bloomington, IN 47401
  47.  
  48.    Registered users may order update-diskettes (5.25 inch, double density)
  49.    for $10 US, plus enough to cover extra postage if you are overseas. (In
  50.    other words, send $50 if you want to register and get an update-diskette.)
  51.    Once you register for this package, you are entitled to a life-time of
  52.    updates of this package, at $10 each, as long is I am in business and
  53.    willing to cash your $10 checks.  (Well, let's make that 10 1986-dollars.
  54.    If rampant inflation sets in, I reserve the right to raise prices
  55.    accordingly.)  Indiana residents add sales tax.
  56.  
  57.    Because of the preliminary nature of this version of D86, I strongly
  58.    recommend that you add the $10 to your registration, to get the next version
  59.    as quickly as possible.  D86 will be enhanced significantly in the coming
  60.    months.  If you do order an update, be sure to specify in your order which
  61.    version you now have.  If I feel that you are close enough to the current
  62.    version, I'll send you a postcard to that effect, and put you on my list for
  63.    first shipment of the next enhancement version.
  64.  
  65.    To use D86, you must have the associated assembler, A86.  A copy of A86
  66.    (without all of its documentation) is included in the D86 package.  If you
  67.    are using D86 to debug only programs written in languages other than A86,
  68.    then you do not need to register for A86.  If you are programming in A86,
  69.    then you must register for A86.  There is a $10 discount for combined
  70.    registration of A86 and D86.  Instead of $40+$40 = $80, the charge for both
  71.    packages is $70.
  72.  
  73.    Educational institutions and training facilities MUST be registered in order
  74.    to use D86 in courses.  Contact me for special terms.
  75.  
  76.    Companies and government agencies MUST be registered in order to use D86 for
  77.    their work.  Again, contact me for special terms.
  78.  
  79. 3. You may not sell this package to anyone.  If you distribute this package
  80.    on a diskette, any fees you collect must be specified as materials/handling,
  81.    and may not exceed $10 for the diskette.
  82.  
  83. 4. You are completely responsible for determining the fitness or usability of
  84.    this package.  I will not be liable for any damages, of any kind, arising
  85.    from any failure of any programs in this package to perform as expected.
  86.  
  87.  
  88. Overview of D86
  89.  
  90. D86 is a screen-oriented program that allows you to troubleshoot faulty computer
  91. programs written for the IBM-PC.  It "freezes" the state of your program, and
  92. allows you to investigate the values of registers, flags, and memory.  You can
  93. monitor your program's execution by stepping it one instruction or procedure at
  94. a time; or you can start your program running, telling D86 to stop it when it
  95. reaches certain locations.  D86 recognizes the symbol-table output of the A86
  96. assembler, creating a symbolic disassembly of your A86 program, and allowing
  97. you to refer to locations and variables by name.
  98.  
  99. The primary design criterion for D86 is ease of use.  This is reflected in the
  100. most notable features of D86:
  101.  
  102. * You don't need to ask D86 what the values of registers and flags are.  They
  103.   are there, automatically, at a fixed location on the screen.
  104.  
  105. * You don't need to ask D86 where in your program you are stopped.  A
  106.   disassembly is always generated, at another fixed location on the screen.
  107.   The disassembly gives a hefty chunk of your program, not just the single
  108.   instruction you are at.  A cursor next to the disassembly marks the current
  109.   location.  The disassembly chunk remains fixed as you step though it,
  110.   allowing you to follow the flow of the program much more easily.  If you
  111.   wrote the program using A86, the disassembly is symbolic, giving instruction
  112.   operands by name, and labelling disassembly locations when possible.
  113.  
  114. * You don't need to ask D86 what is on the machine stack. A display of the top
  115.   elements of the stack is always generated, at yet another fixed location
  116.   on the screen.
  117.  
  118. * You can set up windows into memory, displaying memory contents in a variety of
  119.   types.  The types can even be mixed, to display complicated structures.
  120.   The windows will stay at the same location until you turn them off, allowing
  121.   you to watch what your program is doing to those memory locations.
  122.  
  123. * You can, at any time, enable a help-window, to guide you through debugger
  124.   commands.  You will be astounded by the sophistication of this help-facility,
  125.   especially since other debuggers offer no on-line help whatsoever.
  126.  
  127. * All of the above-mentioned windows exist on the screen at the same time.  You
  128.   don't have to switch between them.
  129.  
  130. * You can single-step your program with single keystrokes, rather than sequences
  131.   of arcane commands.  There are several flavors of single-step keys, clustered
  132.   together on the function-keypad.  This, combined with the automatic nature of
  133.   the display, allows you to single-step very quickly.  You feel like you are
  134.   actually watching your program run.
  135.  
  136. * Much of D86's command langauge is simply the A86 assembly language itself.
  137.   You can type in any A86 instruction, to be executed immediately.  You use this
  138.   to set registers and variables, perform arithmetic, jump to another location,
  139.   etc.  The immediate-execution feature makes D86 the most effective tool
  140.   available for teaching 86 architecture: the student can watch the effects of
  141.   instructions on registers, flags, and memory.
  142.  
  143. * You can patch programs in memory, using the full power of the A86 assembly
  144.   language.
  145.  
  146.  
  147. To give you a balanced view of D86, I shall now list its limitations, including
  148. the reasons why I don't think it is of full product-quality yet.
  149.  
  150. * D86 needs to be tested on a wide variety of hardware.   Both screen-oriented
  151.   programs and debuggers are very finicky to implement; since D86 is both, it
  152.   is doubly finicky.  Unlike A86, which interacts with the machine purely
  153.   through MS-DOS function calls, D86 operates at a low level.  It makes BIOS
  154.   calls, it writes directly to video memory, it reads the video controller chip
  155.   directly, and it creates and intercepts interrupts.  I expect occasional
  156.   trouble when people start running D86 on machines I haven't tried yet.  I want
  157.   to hear about all such machines; and I want to get D86 running on as many
  158.   machines as possible.
  159.  
  160. * D86 has restrictions on usage that don't have to (and hence shouldn't) be
  161.   there.  First, the associated assembler A86 must be in one of two directories:
  162.   either the current directory, or in C:\BIN.  D86 should look in any directory
  163.   specified by the PATH variable, but it doesn't, yet.  Second, D86 currently
  164.   reads only .COM files; it doesn't read .EXE files yet.
  165.  
  166. * D86 disassembles, and allows single-stepping of, the floating-point
  167.   instruction set; but it does not display the values of the floating-point
  168.   stack!  That's unprofessional.  There is a reason, other than lack of time,
  169.   for this omission: I can't afford an 80287 chip, yet.  So here's an OFFER: if
  170.   you get together with some friends to buy 4 registrations, or if you get your
  171.   company to buy a site license for A86, you can say, "OK, Eric, use the money
  172.   to buy yourself a 287."  If anybody does so before I have bought a 287 on my
  173.   own, they will receive D86 with full floating support at least 30 days before
  174.   the rest of the world gets it.
  175.  
  176. * D86's status and error reporting is not what I think it should be.  D86 should
  177.   tell you the name of the program you're debugging.  You should be able to get
  178.   a display of which permanent breakpoints are set.  When the program is
  179.   trapped by D86, you should be told why the trap took place.  If you type in
  180.   an erroneous debugger command, you should be given an error message.
  181.  
  182. * D86 is still an incomplete subset of my ultimate vision for a debugger.
  183.   First, I have big plans for the window that now shows only the sign-on
  184.   message and the help-screens.  In non-help mode, you should be able to toggle
  185.   through whichever of the following displays is appropriate for your machine:
  186.  
  187.      -- an expanded memory window
  188.      -- a debugger status window
  189.      -- a second disassembly window
  190.      -- the floating-point stack and status registers
  191.      -- the 286 protection registers and data structures
  192.  
  193.   Second, I plan to fill out the alphabet of debugger commands, and the
  194.   keyboard-full of function keys.  Some commands I have in mind are:
  195.  
  196.      -- save and play back keyboard scripts
  197.      -- do sophisticated memory searches
  198.      -- gateway to DOS, with EXIT back to debugging session
  199.      -- more exotic stepping and trapping commands
  200.      -- write a patched program or symbol table back to the disk
  201.      -- save and switch to/from the program's full screen
  202.      -- expression arithmetic (and indirection) in all operands
  203.  
  204.   I am eager to hear your ideas for what you'd like to see in terms of expanded
  205.   features.  I will consider all requests.
  206.  
  207.  
  208.  
  209. Who IS That Guy?
  210.  
  211. For those of you who wish to know what credentials I have for producing
  212. programs that meet the above claims, let me tell you who I am.  I am
  213. an independent software consultant.  I have worked with Intel microprocessors
  214. since the early days of the 8080.  As an employee of Intel, I was a part of
  215. the two-man team that implemeted the first ASM86 assembler.  I am one of the
  216. world's leading authorities on the entire 86-family of microcomputers, having
  217. completed numerous major projects involving the 8086, and 80186, and the
  218. 80286.  I am currently under contract with Wiley and Sons, publishers, to
  219. write a book on the 386 architecture.
  220.  
  221. A86 and D86 themselves are mature, solid programs.  They have been in
  222. existence for over 2 years, running first under my own, proprietary operating
  223. system; then later under the Xenix operating system on Altos computers, used
  224. by myself and my clients.
  225.  
  226. Although I have been unknown to the world of the IBM-PC until now, I intend
  227. to change all that in the next couple of years.  Peter Norton, watch out.
  228.  
  229.  
  230. Support Your Local Bulletin Board
  231.  
  232. Bob Breedlove, a BBS Sysop in California, sent me a suggestion with his
  233. registration: that I do something to support Sysops, since they are distributing
  234. my software for me.  Good point, Bob.  Let me try this experiment (but I reserve
  235. the legal right to cancel this offer at any time, without notice): if anybody
  236. who registers wishes to support the BBS from which they obtained my program,
  237. they should tell me the name and phone number of the BBS when they register.
  238. They should also leave a message to the Sysop that they have done so, so the
  239. Sysop can contact me with his/her address.  If I receive 5 registrations naming
  240. a particular BBS, I'll award a free registration to the Sysop-- the Sysop can
  241. designate who the registration is for; or (if the Sysop has already paid for a
  242. registration) he/she can elect to receive a cash refund.  For each subsequent 5
  243. registrations, I'll send the Sysop a cash rebate equal to one half the
  244. registration fee.  Sorry, no bonuses for less than 5 registrations; I don't want
  245. to be swamped with paperwork.
  246.  
  247.  
  248. How to Get in Touch With Me
  249.  
  250. I would love to hear about what you think of my products.  But please remember
  251. that telephone support takes time; and I don't have the money to hire a support
  252. staff.  The most obvious way for you to communicate to me is to include your
  253. comments with your registration.  Another way to communicate with me is to leave
  254. a message, addressed to me, on the Bloomington PC-Link Central bulletin board,
  255. at (812)824-7990; or Indiana On-Line, at (812)332-7227.  I'll try to promptly
  256. answer the questions of any REGISTERED users, either via the bulletin board, or
  257. by return mail if you send me a self-addressed, stamped envelope.
  258.  
  259.  
  260. What to Read Next
  261.  
  262. Read the file CONTENTS.DOC for an description of all the files in this package.
  263. The file D86LIST.BAT will print the documentation files, in the order that they
  264. are presented in the table of contents.
  265.  
  266. The file DEMO.DOC will guide you through a D86 session, showing you some of the
  267. features of D86.
  268.  
  269.